const webpack = require('webpack');
const path = require('path');

module.exports = {
    // 基本路径
    baseUrl: '/',
    // 输出文件目录
    outputDir: 'dist',
    // eslint-loader 是否在保存的时候检查
    lintOnSave: true,
    // use the full build with in-browser compiler?
    // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
    // compiler: false,
    // webpack配置
    // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
    chainWebpack: (config) => {
        config.resolve.alias
            .set('@', path.resolve(__dirname, './src'))
            .set('mui', path.resolve(__dirname, './src/assets/mui/js/mui.js'))
    },
    configureWebpack: {
        // 增加一个plugins
        plugins: [
            new webpack.ProvidePlugin({
                mui: "mui",
                "window.mui": "mui"
            })
        ]
    },
    // vue-loader 配置项
    // https://vue-loader.vuejs.org/en/options.html
    // vueLoader: {},
    // 生产环境是否生成 sourceMap 文件
    productionSourceMap: true,
    // css相关配置
    // css: {
    //     // 是否使用css分离插件 ExtractTextPlugin
    //     extract: true,
    //     // 开启 CSS source maps?
    //     sourceMap: false,
    //     // css预设器配置项
    //     loaderOptions: {},
    //     // 启用 CSS modules for all css / pre-processor files.
    //     modules: false
    // },
    css: { // 配置高于chainWebpack中关于css loader的配置
        modules: false, // 是否开启支持‘foo.module.css’样式
        extract: true, // 是否使用css分离插件 ExtractTextPlugin，采用独立样式文件载入，不采用<style>方式内联至html文件中
        sourceMap: false, // 是否在构建样式地图，false将提高构建速度
        loaderOptions: { // css预设器配置项
            css: {
                localIdentName: '[name]-[hash]',
                camelCase: 'only'
            },
            stylus: {}
        }
    },


    // use thread-loader for babel & TS in production build
    // enabled by default if the machine has more than 1 cores
    parallel: require('os').cpus().length > 1,
    // 是否启用dll
    // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
    // dll: false,
    // PWA 插件相关配置
    // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
    pwa: {},
    // webpack-dev-server 相关配置
    devServer: {
        host: 'localhost',
        port: 8080,
        // https: false,
        // hotOnly: false,
        // baseUrl: '/',
        proxy: 'http://localhost:3000',
        // proxy: {
        //     '/api': {
        //         target: 'http://localhost:3000/api',
        //         changeOrigin: true,
        //         ws: true,
        //         pathRewrite: {
        //             '^/api': '/api'
        //         }
        //     }
        // }
        // before: app => {}
    },
    // 第三方插件配置
    pluginOptions: {
        // ...
    }
}